﻿using System;
/*
 *  按要求编写一个控制台应用程序：
（1）编写一个矩形类Rect，包含属性：矩形的宽width；矩形的高height。两个构造方法：一个带有两个参数的构造方法，用于将width和height属性初化；
一个不带参数的构造方法，将矩形初始化为宽和高都为10。
两个方法：求矩形面积的方法area();b.求矩形周长的方法perimeter()

（2）通过继承Rect类编写一个具有确定位置的矩形类PlainRect，其确定位置用矩形的左上角坐标来标识，包含：添加两个属性：
矩形左上角坐标startX和startY。两个构造方法：带4个参数的构造方法，用于对startX、startY、width和height属性初始化；
不带参数的构造方法，将矩形初始化为左上角坐标、长和宽都为0的矩形；
添加一个方法：判断某个点是否在矩形内部的方法isInside(doublex,doubley)。如在矩形内，返回true,否则，返回false。

（3）编写PlainRect类的测试程序

创建一个左上角坐标为（10，10），长为20，宽为10的矩形对象；

计算并打印输出矩形的面积和周长；

判断点(25.5，13)是否在矩形内，并打印输出相关信息。
 */
namespace 第五题
{
    /*
     * 编写一个矩形类Rect，包含属性：矩形的宽width；矩形的高height。
     * 两个构造方法：一个带有两个参数的构造方法，
     * 用于将width和height属性初化；
     * 一个不带参数的构造方法，
     * 将矩形初始化为宽和高都为10。
     * */
    class Rect 
    {
        public double  Width { get; set; }
        public double  Height { get; set; }
        public Rect(double Width, double Height)
        {
            this.Width = Width;
            this.Height = Height;
        }
        public Rect() 
        {
           this. Width = 10;
           this.Height = 10;
        }
        //两个方法：求矩形面积的方法area(); b.求矩形周长的方法perimeter()
        public void area()
        {
            Console.WriteLine("面积="+Width*Height);
        }
        public void perimeter()
        {
            Console.WriteLine("周长="+(Width+Height)*2);
        }
    }
    /*
     * （2）通过继承Rect类编写一个具有确定位置的矩形类PlainRect，其确定位置用矩形的左上角坐标来标识，包含：添加两个属性：
        矩形左上角坐标startX和startY。两个构造方法：带4个参数的构造方法，用于对startX、startY、width和height属性初始化；
        不带参数的构造方法，将矩形初始化为左上角坐标、长和宽都为0的矩形；
     */
    class PlainRect : Rect 
    {
        public double starX { get; set; }
        public double starY { get; set; }
        public PlainRect(double starX, double starY,double Width,double Height)
        {
            this.starX = starX;
            this.starY = starY;
            this.Width = Width;
            this.Height = Height;
        }
        public PlainRect()
        {
            this.starX = 0;
            this.starY = 0;
            this.Width = 0;
            this.Height = 0;
        }
        // 添加一个方法：判断某个点是否在矩形内部的方法isInside(doublex,doubley)。如在矩形内，返回true,否则，返回false。
        public Boolean isInside(double x, double y)
        {
            if (x >= starX && x <= starX+Width)
            {
                if (y <= starY && y >= starY-Height)
                {
                    return true;
                }
                else return false;
            }
            else return false;
        }

    }
    /*3）编写PlainRect类的测试程序

        创建一个左上角坐标为（10，10），长为20，宽为10的矩形对象；

        计算并打印输出矩形的面积和周长；

        判断点(25.5，13)是否在矩形内，并打印输出相关信息。*/

    class Program
    {
        static void Main(string[] args)
        {
            PlainRect PR=new PlainRect();
            PR.starX = 10;
            PR.starY = 10;
            PR.Width = 10;
            PR.Height = 20;
            PR.area();
            PR.perimeter();
            Console.WriteLine( PR.isInside(25.5, 13));
        }
    }
}
